/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Informacion.PuestoDeTrabajo.Controlador;

import Informacion.PuestoDeTrabajo.BEAN.PrivilegiosBEAN;
import java.util.ArrayList;
import sape.ControladorTabla;

/**
 *
 * @author Nilo
 */
public class PrivilegiosControlador extends ControladorTabla {

    String[] columnas_tabla = {"Id", "Privilegio", "Descripción"};
    Object[][] datos_tabla = null; 

    
    public PrivilegiosControlador(){
        this.inicializarTabla();
    }
    
    private void inicializarTabla() {
        ArrayList<PrivilegiosBEAN> lista = PrivilegiosBEAN.getListaDePrivilegios();
        this.actualizar_tabla(lista);
    }
    
    private void actualizar_tabla(ArrayList<PrivilegiosBEAN> lista) {

        if (lista == null) {
            this.datos_tabla = null;
            fireTableDataChanged();
            return;
        }

        Object[][] new_datos_tabla = new Object[lista.size()][columnas_tabla.length];

        for (int i = 0; i < lista.size(); i++) {
            PrivilegiosBEAN elemento = lista.get(i);
            new_datos_tabla[i][0] = elemento.getId();
            new_datos_tabla[i][1] = elemento.getPrivilegio();
            new_datos_tabla[i][2] = elemento.getPrivilegioDescripcion();            
        }
        this.datos_tabla = new_datos_tabla;
        fireTableDataChanged();
    }

    
    
    @Override
    public int getColumnCount() {
        if (columnas_tabla == null) {
            return 0;
        }
        return columnas_tabla.length;
    }

    @Override
    public int getRowCount() {
        if (datos_tabla == null) {
            return 0;
        }
        return datos_tabla.length;
    }

    @Override
    public String getColumnName(int col) {

        return columnas_tabla[col];
    }

    @Override
    public Object getValueAt(int row, int col) {
        if (datos_tabla == null) {
            return " ";
        }
        return datos_tabla[row][col];
    }

    @Override
    public Class getColumnClass(int c) {
        if (datos_tabla == null) {
            return " ".getClass();
        }
        return getValueAt(0, c).getClass();
    }

    @Override
    public void setValueAt(Object value, int row, int col) {

        System.out.println("Setting value at " + row + "," + col
                + " to " + value
                + " (an instance of "
                + value.getClass() + ")");
        datos_tabla[row][col] = value;
        fireTableCellUpdated(row, col);
        System.out.println("New value of data:");
        printDebugData();

    }

    private void printDebugData() {
        int numRows = getRowCount();
        int numCols = getColumnCount();

        for (int i = 0; i < numRows; i++) {
            System.out.print("    row " + i + ":");
            for (int j = 0; j < numCols; j++) {
                System.out.print("  " + datos_tabla[i][j]);
            }
            System.out.println();
        }
        System.out.println("--------------------------");
    }
}
